Exercise 13: Cross-sample scRNAseq differential state analysis

Author

Gonzalo Cardenal Antolin (GonzaloCardenalAl)

Published

December 20, 2023

Getting started

The aim of this exercise is to practice and push further what has been done during the hands-on session. We will be working with the same dataset, namely a single-cell RNA-seq of mouse cortex injected with LPS or with a vehicle treatment (see Crowell et al.). You can download the data in SingleCellExperiment (SCE) format here, or with:

# download the single-cell counts:
download.file("http://imlspenticton.uzh.ch/teaching/STA426/week13.SCE.rds", dest="week13.SCE.rds")
# the pseubo-bulk aggregation:
download.file("http://imlspenticton.uzh.ch/teaching/STA426/week13.PB.rds", dest="week13.PB.rds")

The code used during the hands-on session is available in the course github repo. An example of a different workflow on this very dataset, from pre-processing to clustering and differential state analysis, is available here.

Loading necessary libraries

suppressPackageStartupMessages({
  library(SingleCellExperiment)
  library(scran) # sc analysis
  library(scater) # sc QC and plotting
  library(batchelor) # batch correction methods
  library(scDblFinder) # doublet detection
  # library(sctransform) # variance-stabilizing transformation (optional)
  library(muscat) # differential expression analysis
  library(BiocParallel) # handling multi-threading
  library(BiocNeighbors) # specifying params for kNN
  library(igraph) # for manual graph clustering
  library(sechm) # plotting
  library(ggplot2) # plotting
  library(patchwork) # to combine
  library(grid)
  library(UpSetR)
  library("edgeR")
  library(dplyr)
})
Warning in checkDepPackageVersion(dep_pkg = "TMB"): Package version inconsistency detected.
glmmTMB was built with TMB version 1.9.6
Current TMB version is 1.9.10
Please re-install glmmTMB from source or restore original 'TMB' package (see '?reinstalling' for more information)

Question 1: Per-celltype DS analysis and comparison

The goal of the exercise is to try to disentangle celltype-specific responses to the treatment. For the first part, follow the following steps:

1. Repeat the differential state analysis as we did in the course using muscat (or take your saved output from the course). https://bioconductor.org/packages/devel/bioc/vignettes/muscat/inst/doc/analysis.html

sce <- readRDS("week13.SCE.rds")
dim(sce)
[1] 27998 12147
assays(sce)$counts
table(sce$sample_id, sce$group_id)
           
              WT  LPS
  LC016_WT  1730    0
  LC017_LPS    0 1027
  LC019_WT  1064    0
  LC020_LPS    0 1468
  LC022_WT  1806    0
  LC023_LPS    0 1546
  LC025_WT  1259    0
  LC026_LPS    0 2247

QC

mito <- grep("mt-", rownames(sce), value = TRUE)
head(mito)
[1] "ENSMUSG00000064341.mt-Nd1"  "ENSMUSG00000064345.mt-Nd2" 
[3] "ENSMUSG00000064351.mt-Co1"  "ENSMUSG00000064354.mt-Co2" 
[5] "ENSMUSG00000064356.mt-Atp8" "ENSMUSG00000064357.mt-Atp6"
# get QC metrics:
sce <- addPerCellQC(sce, subsets=list(Mt=mito), percent.top=c(5,10))
sce <- addPerFeatureQC(sce)

# we plot some of the metrics
qc <- as.data.frame(colData(sce))
ggplot(qc, aes(subsets_Mt_percent)) + geom_histogram() + facet_wrap(~sample_id)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(qc, aes(log10(sum))) + geom_histogram() + facet_wrap(~sample_id)
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(qc, aes(log10(sum), log10(detected))) + geom_point() + geom_density2d()

# we set thresholds on the library sizes and detection rate:
sce$qc.out <- isOutlier(log(sce$sum),nmads=3,batch=sce$sample_id) |
              isOutlier(log(sce$detected),nmads=3,batch=sce$sample_id)
# a fancier job would be accomplished by https://github.com/wmacnair/SampleQC
table(sce$qc.out)

FALSE  TRUE 
12115    32 
# get rid of seldom detected genes
sce <- sce[rowData(sce)$detected>=4,]

# we flag doublets: doublets are droplets that capture more than one cell and this might be a problem when it captures more than one cell-type
sce <- scDblFinder(sce, samples="sample_id", BPPARAM=MulticoreParam(6))
table(sce$scDblFinder.class)

singlet doublet 
  11484     663 

Normalization and reduction

# (fast) standard log-normalization
sce <- logNormCounts(sce)

# get high-variable genes (normally we'd take 3000, here we'll go skim for speed)
hvg <- getTopHVGs(sce, n=1000)

# alternative: variance-stabilizing transformation
# vst <- suppressWarnings(sctransform::vst(counts(sce)))
# logcounts(sce) <- vst$y
# # get highly-variable genes
# hvg <- row.names(sce)[order(vst$gene_attr$residual_variance,
#                             decreasing=TRUE)[1:1000]]


# run PCA
sce <- runPCA(sce, ncomponents=50, subset_row=hvg)

#How many componentes do you take? before the used the elbo, but it is not a good way to proceed. 

# check the variance explained by the PCs:
pc.var <- attr(reducedDim(sce),"percentVar")
plot(pc.var, xlab="PCs", ylab="% variance explained")

# restrict to the first 20 components:
reducedDim(sce) <- reducedDim(sce)[,1:20]

# run and plot 2d projections based on the PCA
# to improve performance, use Annoy kNN approximation:
sce <- runTSNE(sce, dimred="PCA", BNPARAM=AnnoyParam())
sce <- runUMAP(sce, dimred="PCA", n_neighbors=30, BNPARAM=AnnoyParam())

# you can compare the 2d embeddings:
# sleepwalk::sleepwalk( as.list(reducedDims(sce)[c("TSNE","UMAP")]),
#                       featureMatrices=reducedDims(sce)[["PCA"]] )

#it is an impossible task to do not introduce distorsions in these methods of dimensionality reduction.  Because to perserve the neighbours of one cell, you need to disturb the others. 

# plot by doublet score
plotUMAP(sce, colour_by="scDblFinder.score") +
  plotTSNE(sce, colour_by="scDblFinder.score") +
  plot_layout(guides = "collect")

# filter out bad cells
sce <- sce[,sce$scDblFinder.class!="doublet" & !sce$qc.out]

Batch correction

# check mixing:
plotTSNE(sce, colour_by="group_id") +
  plotTSNE(sce, colour_by="sample_id") +
  plot_layout(guides = "collect")

Clustering

# BiocNeighbors
g <- buildKNNGraph(sce, BNPARAM=AnnoyParam(), use.dimred="PCA", k=30)
sce$cluster <- as.factor(cluster_leiden(g, objective_function="modularity",
                                        n_iterations=20)$membership)
table(sce$cluster)

   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16 
 305  997  274  982  206 1247  946  301 1058  709  870  221  725  253  708   95 
  17   18   19   20   21 
 635  577  107  135  108 
# we could play with the `resolution_parameter` of `cluster_leiden` 
# to decide on the granularity

plotTSNE(sce, colour_by="cluster", text_by="cluster") +
  plotUMAP(sce, colour_by="cluster", text_by="cluster")

Clustering abundances across samples

ca <- table(cluster=sce$cluster, sample=sce$sample_id)
ggplot(as.data.frame(ca), aes(reorder(sample), cluster, fill=Freq)) +
  geom_tile() + geom_text(aes(label=Freq)) +
  scale_fill_viridis_c()

Cluster annotation -De-novo marker identification

# we identify genes that differ between clusters:
mm <- scran::findMarkers(sce, groups=sce$cluster, test.type="binom",
                         BPPARAM=MulticoreParam(6))
# we select the top 5 markers by cluster:
markers <- unique(unlist(lapply(mm, FUN=function(x){
  head(row.names(x[x$FDR<0.01,]),5)
})))

-Known markers

genes <- list(
  astrocytes = c("Aqp4", "Gfap", "Fgfr3","Dio2"),
  endothelial = c("Cldn5","Nostrin","Flt1"),
  microglia = c("C1qb","Tyrobp","P2ry12", "Csf1r"),
  neuronal = c("Snap25", "Stmn2", "Syn1", "Rbfox3"),
  excNeuron = c("Slc17a7","Camk2a","Grin2b","Fezf2"),
  inhNeuron = c("Gad1","Lhx6","Adarb2"),
  oligodendro = c("Opalin","Plp1","Mag","Mog"),
  OPC = c("Pdgfra","Sox6","Bcan")
)

# since the row.names of the object have also the ensembl id, we find the matching row names for each gene:
km <- lapply(genes, FUN=function(g) grep(paste0(g, "$", collapse="|"), rownames(sce), value=TRUE))

-Pseudo-bulk aggregation

# muscat
# mean logcounts by cluster:
pb <- aggregateData(sce, "logcounts", by=c("cluster"), fun="mean")
assayNames(pb) <- "logcounts"
assays(pb)$propOfMax <- exp(logcounts(pb))/rowMaxs(exp(logcounts(pb)))
rowData(pb)$marker4 <- NA
rowData(pb)[unlist(km),"marker4"] <- rep(names(km),lengths(km))

sechm(pb, c(unlist(km)), assayName="logcounts", gaps_row="marker4",
      show_colnames=TRUE, do.scale=TRUE, breaks=1, row_title_rot=0) + 
  sechm(pb, c(unlist(km)), assayName = "propOfMax", show_colnames=TRUE,
        do.scale=FALSE, hmcols=viridis::viridis(100), 
        row_names_gp=gpar(fontsize=9))

# heatmap for the de-novo markers:
sechm(pb, markers, assayName = "propOfMax", show_colnames=TRUE,
        do.scale=FALSE, hmcols=viridis::viridis(100), 
        row_names_gp=gpar(fontsize=9))

# we get rid of the unspecific neuronal markers:
km2 <- km[names(km)!="neuronal"]
# we extract the pseudo-bulk counts of the markers for each cluster
mat <- assay(pb)[unlist(km2),]
# we aggregate across markers of the same type
mat <- aggregate(t(scale(t(mat))),
                 by=list(type=rep(names(km2), lengths(km2))),
                 FUN=sum)
# for each column (cluster), we select the row (cell type) which has the maximum aggregated value
cl2 <- mat[,1][apply(mat[,-1], 2, FUN=which.max)]

# we convert the cells' cluster labels to cell type labels:
sce$cluster2 <- cl2[sce$cluster]
table(sce$cluster, sce$cluster2)
    
     astrocytes endothelial excNeuron inhNeuron microglia oligodendro  OPC
  1           0           0       305         0         0           0    0
  2           0           0       997         0         0           0    0
  3           0           0         0         0       274           0    0
  4           0           0       982         0         0           0    0
  5           0           0       206         0         0           0    0
  6           0           0      1247         0         0           0    0
  7         946           0         0         0         0           0    0
  8           0           0         0       301         0           0    0
  9           0           0         0      1058         0           0    0
  10          0           0       709         0         0           0    0
  11          0           0         0         0         0         870    0
  12          0         221         0         0         0           0    0
  13          0           0         0         0         0         725    0
  14          0         253         0         0         0           0    0
  15        708           0         0         0         0           0    0
  16          0          95         0         0         0           0    0
  17          0           0         0       635         0           0    0
  18          0           0         0         0         0           0  577
  19          0           0         0         0         0           0  107
  20          0         135         0         0         0           0    0
  21          0         108         0         0         0           0    0
plotUMAP(sce, colour_by="cluster2", text_by="cluster2")

# we aggregate again to pseudo-bulk using the new clusters
pb <- aggregateData(sce, "logcounts", by=c("cluster2"), fun="mean")
assayNames(pb) <- "logcounts"
# and we plot again the expression of the markers as a sanity check
rowData(pb)$marker4 <- NA
rowData(pb)[unlist(km),"marker4"] <- rep(names(km),lengths(km))
sechm(pb, c(unlist(km)), assayName="logcounts", gaps_row="marker4",
      show_colnames=TRUE, do.scale=TRUE, breaks=1, row_title_rot=0)

plotTSNE(sce, colour_by="cluster2", text_by="cluster2")

saveRDS(sce, file="week13.SCE.processed.rds")

Differential state analysis

# we aggregate by cluster x sample to perform pseudo-bulk differential state analysis
sce <- muscat::prepSCE(sce, kid="cluster2", sid = "sample_id",
                       gid = "group_id")
pb <- aggregateData(sce)

pbMDS(pb)

# we run edgeR on each cluster and extract the results
res <- pbDS(pb)

  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |====================                                                  |  29%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==================================================                    |  71%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |======================================================================| 100%
res2 <- dplyr::bind_rows(res$table[[1]])

# volcano plots
ggplot(res2, aes(logFC, -log10(p_adj.loc), colour=p_adj.loc<0.05)) + geom_point() + facet_wrap(~cluster_id)

# top genes in a given cell type
pbHeatmap(sce, res, k="astrocytes", top_n = 5)

# we extract all differentially-expressed genes:
degs <- unique(res2[res2$p_adj.loc<0.05,"gene"])

# we flatten the pb object (putting all cell types in the same assay) and calculate foldchanges
pb2 <- pbFlatten(pb)
# we add a logFC assay:
pb2 <- sechm::log2FC(pb2, fromAssay="logcpm", controls=pb2$group_id=="WT", by=pb2$cluster_id)
# we reorder
pb2 <- pb2[,order(pb2$cluster_id, pb2$group_id)]
# we plot a heatmap of the logFC of the top 200 genes across all cell types
sechm(pb2, head(degs,200), assayName="log2FC", gaps_at="cluster_id",
      column_title_gp=gpar(fontsize=9))

# we run edgeR on each cluster and extract the results
res <- pbDS(pb)

  |                                                                            
  |                                                                      |   0%
  |                                                                            
  |==========                                                            |  14%
  |                                                                            
  |====================                                                  |  29%
  |                                                                            
  |==============================                                        |  43%
  |                                                                            
  |========================================                              |  57%
  |                                                                            
  |==================================================                    |  71%
  |                                                                            
  |============================================================          |  86%
  |                                                                            
  |======================================================================| 100%
res2 <- dplyr::bind_rows(res$table[[1]])

# volcano plots
ggplot(res2, aes(logFC, -log10(p_adj.loc), colour=p_adj.loc<0.05)) + geom_point() + facet_wrap(~cluster_id)

2. Compare the differentially-expressed genes across the different cell types, for instance using UpSet plots.

res2$DE <- res2$p_adj.loc<0.05

degs <- as.data.frame(degs)

degs$astrocytes <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "astrocytes" & res2$DE == TRUE], 1, 0)

degs$endothelial <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "endothelial" & res2$DE == TRUE], 1, 0)

degs$excNeuron <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "excNeuron" & res2$DE == TRUE], 1, 0)

degs$inhNeuron <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "inhNeuron" & res2$DE == TRUE], 1, 0)

degs$microglia <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "microglia" & res2$DE == TRUE], 1, 0)

degs$oligodendro <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "oligodendro" & res2$DE == TRUE], 1, 0)

degs$OPC <- ifelse(degs$degs %in% res2$gene[res2$cluster_id == "OPC" & res2$DE == TRUE], 1, 0)

upset(degs[-1], sets = colnames(degs[-1]), order.by = "freq")

In the UpSet plot we can observe the genes the amount of genes that were DE for each cell type. Astrocytes and endothelial cells are the cell types with highest DE genes.

3. Choose one cell type, find some genes that are significant in only that cell type, and plot their pseudo-bulk profile across the dataset (e.g. with muscat::pbHeatmap, or flattened heatmaps using SEtools). Are they truly cell-type specific?

rownames(degs) <- degs$degs
degs <- degs[-1]

selected_rows <- which(degs$excNeuron == TRUE & rowSums(degs[, -which(names(degs) == "excNeuron")]) == 0)
DE_only_excNeuron <- rownames(degs[selected_rows, , drop = FALSE])
head(DE_only_excNeuron)
[1] "ENSMUSG00000026344.Lypd1"   "ENSMUSG00000048482.Bdnf"   
[3] "ENSMUSG00000074923.Pak6"    "ENSMUSG00000027624.Epb41l1"
[5] "ENSMUSG00000027560.Dok5"    "ENSMUSG00000042035.Igsf3"  

We choose these 5 genes only DE in excitatory neurons.

# we flatten the pb object (putting all cell types in the same assay) and calculate foldchanges
pb2 <- pbFlatten(pb)
# we add a logFC assay:
pb2 <- sechm::log2FC(pb2, fromAssay="logcpm", controls=pb2$group_id=="WT", by=pb2$cluster_id)
# we reorder
pb2 <- pb2[,order(pb2$cluster_id, pb2$group_id)]
sechm(pb2, head(DE_only_excNeuron), assayName="log2FC", gaps_at="cluster_id",
      column_title_gp=gpar(fontsize=5))

If they were cell-type specific, we would observe differential expression (up or down-regulated) only for that cluster ID. However we can observe for at least these 5 genes specifically, these genes are not truely cell-type specific as their expression is also differential for other clusters.

Question 2: Global DS analysis

Instead of running the differential expression analysis separately for each cell type, like muscat does, we can also run it for all cell types together. This allows us to use the framework of generalized linear models (GLMs)1 to capture effects in terms of global treatment (i.e. group) effect, and interaction terms capturing the additional effect of the treatment in specific cell types. The second part of the exercise is to try such an approach. More specifically:

1. Build a pseudo-bulk SummarizedExperiment or counts matrix that contains all cell types (e.g. muscat::pbFlatten).

counts <- assays(pb2)$counts

2. Build a model.matrix that captures i) the different cell types (cluster_id), ii) the different treatments (group_id), and iii) their interaction.

group <- factor(colnames(pb2))
y <- DGEList(counts=counts , group=group)
y <- calcNormFactors(y)
  1. the different cell types (cluster_id)
cell_types <- pb2$cluster_id
design_cell_types <- model.matrix(~cell_types)
y <- estimateDisp(y,design_cell_types)
#To perform likelihood ratio tests:
fit <- glmFit(y,design_cell_types)
lrt_celltypes <- glmLRT(fit)
topTags(lrt_celltypes)
Coefficient:  cell_typesOPC 
                               logFC    logCPM       LR        PValue
ENSMUSG00000106379.Lhfpl3   7.529414  9.365999 489.9198 1.483431e-108
ENSMUSG00000062257.Opcml    4.792293 11.212983 487.5685 4.818145e-108
ENSMUSG00000015829.Tnr      6.102887  9.495983 479.4769 2.776974e-106
ENSMUSG00000021614.Vcan     5.281881  6.422884 466.7884 1.601953e-103
ENSMUSG00000029231.Pdgfra   7.298128  7.438284 438.5263  2.265638e-97
ENSMUSG00000033006.Sox10    5.225970  6.373902 365.6405  1.664939e-81
ENSMUSG00000052613.Pcdh15   4.609445  9.405756 335.8573  5.094439e-75
ENSMUSG00000025909.Sntg1    3.972592  8.750445 320.2373  1.285940e-71
ENSMUSG00000034310.Tmem132d 4.583043  7.748040 309.4234  2.916330e-69
ENSMUSG00000050272.Dscam    5.049730  8.762630 303.5403  5.577872e-68
                                      FDR
ENSMUSG00000106379.Lhfpl3   1.318325e-104
ENSMUSG00000062257.Opcml    2.140943e-104
ENSMUSG00000015829.Tnr      8.226322e-103
ENSMUSG00000021614.Vcan     3.559139e-100
ENSMUSG00000029231.Pdgfra    4.026946e-94
ENSMUSG00000033006.Sox10     2.466052e-78
ENSMUSG00000052613.Pcdh15    6.467754e-72
ENSMUSG00000025909.Sntg1     1.428519e-68
ENSMUSG00000034310.Tmem132d  2.879714e-66
ENSMUSG00000050272.Dscam     4.957054e-65
  1. the different treatments (group_id)
group <- pb2$group_id
design <- model.matrix(~group)
y <- estimateDisp(y,design)
#To perform likelihood ratio tests:
fit <- glmFit(y,design)
lrt_treatments <- glmLRT(fit,coef=2)
topTags(lrt_treatments)
Coefficient:  groupLPS 
                               logFC    logCPM        LR       PValue
ENSMUSG00000034855.Cxcl10   9.539243  8.427407 114.60616 9.598753e-27
ENSMUSG00000004040.Stat3    2.425182  7.729863  95.25778 1.671400e-22
ENSMUSG00000040026.Saa3     9.007182  9.714243  87.77906 7.318968e-21
ENSMUSG00000053113.Socs3    5.568103  6.635827  78.35890 8.592158e-19
ENSMUSG00000022094.Slc39a14 2.779063  6.927302  77.76305 1.161732e-18
ENSMUSG00000035673.Sbno2    3.590433  6.994296  77.29720 1.470747e-18
ENSMUSG00000051439.Cd14     7.310838  7.659779  74.92313 4.894032e-18
ENSMUSG00000029380.Cxcl1    8.624937  8.183750  68.92396 1.023339e-16
ENSMUSG00000031762.Mt2      3.650698 10.720730  63.96202 1.268410e-15
ENSMUSG00000026104.Stat1    2.725879  6.277276  62.11739 3.235811e-15
                                     FDR
ENSMUSG00000034855.Cxcl10   8.530412e-23
ENSMUSG00000004040.Stat3    7.426868e-19
ENSMUSG00000040026.Saa3     2.168122e-17
ENSMUSG00000053113.Socs3    1.908963e-15
ENSMUSG00000022094.Slc39a14 2.064863e-15
ENSMUSG00000035673.Sbno2    2.178421e-15
ENSMUSG00000051439.Cd14     6.213323e-15
ENSMUSG00000029380.Cxcl1    1.136801e-13
ENSMUSG00000031762.Mt2      1.252484e-12
ENSMUSG00000026104.Stat1    2.875666e-12
  1. their interaction
design_interaction <- model.matrix(~cell_types*group)

3. Run differential expression analysis (e.g. using edgeR), and extract the genes with a significant global treatment effect, and the genes with a significant cell type effect (interaction term) for the cell type you selected in #3.

y <- DGEList(counts=counts , group=group)
y <- calcNormFactors(y)
y <- estimateDisp(y,design_interaction)
#To perform likelihood ratio tests:
fit <- glmFit(y,design_interaction)
lrt_global <- glmLRT(fit,coef=8)
topTags(lrt_global, n= Inf, p.value=0.05, adjust.method = "bonferroni")
Coefficient:  groupLPS 
                                      logFC    logCPM        LR       PValue
ENSMUSG00000035673.Sbno2          5.1729151  6.843842 267.72817 3.548567e-60
ENSMUSG00000024998.Plce1          3.2929565  6.953755 147.44449 6.274287e-34
ENSMUSG00000022094.Slc39a14       4.0473035  6.776529 146.83608 8.522470e-34
ENSMUSG00000052560.Cpne8          4.5059983  7.032948 143.83476 3.861158e-33
ENSMUSG00000021091.Serpina3n      4.3077971  5.966274 133.58676 6.727747e-31
ENSMUSG00000021453.Gadd45g        3.0948659  6.415887 125.91985 3.201565e-29
ENSMUSG00000022146.Osmr           6.7378106  5.942096 124.28209 7.307954e-29
ENSMUSG00000018899.Irf1           4.4230529  6.776183 118.57151 1.299826e-27
ENSMUSG00000004040.Stat3          2.5675479  7.649794 116.23077 4.230867e-27
ENSMUSG00000034855.Cxcl10        11.3882344  8.266486 106.23511 6.548597e-25
ENSMUSG00000040033.Stat2          2.9864557  6.508861  94.22756 2.812572e-22
ENSMUSG00000054072.Iigp1          9.3768775  7.550808  91.91449 9.050407e-22
ENSMUSG00000105504.Gbp5           7.6759289  6.656298  91.82127 9.486927e-22
ENSMUSG00000054226.Tprkb         -2.2107000  6.062998  91.50591 1.112592e-21
ENSMUSG00000053113.Socs3          6.6237545  6.185619  90.92245 1.494146e-21
ENSMUSG00000040430.Pitpnc1       -2.2430528  8.570368  87.65532 7.791470e-21
ENSMUSG00000036644.Tbc1d9b        2.1332441  6.703553  86.15939 1.660016e-20
ENSMUSG00000026131.Dst            1.8526821  8.725271  80.38537 3.080669e-19
ENSMUSG00000036661.Dennd3         4.2137550  5.756880  76.66047 2.030270e-18
ENSMUSG00000026104.Stat1          3.2738561  5.961661  76.00518 2.829220e-18
ENSMUSG00000024501.Dpysl3         4.1754574  5.705460  75.38107 3.880939e-18
ENSMUSG00000070366.Plpp4          3.1058017  5.908109  73.32102 1.101881e-17
ENSMUSG00000020932.Gfap           3.7484434  6.915936  71.03830 3.503569e-17
ENSMUSG00000069874.Irgm2          4.8411519  5.880912  69.07934 9.458075e-17
ENSMUSG00000037876.Jmjd1c         1.6098640  8.605151  67.04211 2.657685e-16
ENSMUSG00000029561.Oasl2          5.3932474  6.459954  65.83481 4.903453e-16
ENSMUSG00000034640.Tiparp         2.4702860  7.481458  65.65985 5.358643e-16
ENSMUSG00000033720.Sfxn5         -1.6946183  7.439145  63.47117 1.627314e-15
ENSMUSG00000051439.Cd14           5.9273020  7.090845  63.15097 1.914552e-15
ENSMUSG00000029380.Cxcl1          6.6734880  8.056475  61.90044 3.612692e-15
ENSMUSG00000035385.Ccl2           9.6843343  8.489577  61.61804 4.169809e-15
ENSMUSG00000026822.Lcn2           6.8582878  9.524705  61.14630 5.298734e-15
ENSMUSG00000030759.Far1           2.0557405  6.510621  61.01511 5.663833e-15
ENSMUSG00000055320.Tead1          1.8025851  7.170354  60.10526 8.991771e-15
ENSMUSG00000024339.Tap2           2.7207085  5.816186  59.84987 1.023763e-14
ENSMUSG00000039037.St6galnac5    -2.1699756  7.893553  59.54448 1.195609e-14
ENSMUSG00000052837.Junb           2.6280957  6.600337  58.61032 1.922056e-14
ENSMUSG00000084984.Far1os         2.3287569  5.650893  58.19101 2.378637e-14
ENSMUSG00000026565.Pou2f1        -1.8786594  6.486639  57.39351 3.567827e-14
ENSMUSG00000037458.Azin1          1.6627951  6.868663  57.21082 3.915115e-14
ENSMUSG00000037405.Icam1          4.7146020  6.806518  55.56434 9.044939e-14
ENSMUSG00000039701.Usp53          2.0543557  6.713912  55.27731 1.046699e-13
ENSMUSG00000020658.Efr3b          1.7440615  7.946889  55.22754 1.073542e-13
ENSMUSG00000019841.Rev3l          1.8464575  7.221205  53.35113 2.789512e-13
ENSMUSG00000021360.Gcnt2          3.2567667  6.483870  52.94479 3.430564e-13
ENSMUSG00000029798.Herc6          2.4213107  5.748384  51.89280 5.861491e-13
ENSMUSG00000022681.Ntan1          1.5948257  8.057143  51.82560 6.065567e-13
ENSMUSG00000013150.Gfod2          1.9359046  6.170962  51.64099 6.663570e-13
ENSMUSG00000029313.Aff1           2.0015877  7.252064  50.34591 1.288982e-12
ENSMUSG00000073411.H2-D1          3.1399268  8.714176  49.82401 1.681730e-12
ENSMUSG00000025492.Ifitm3         3.3060207  8.491549  49.58677 1.897894e-12
ENSMUSG00000046768.Rhoj           2.8597159  6.520061  49.42375 2.062332e-12
ENSMUSG00000027737.Slc7a11        1.7659555  6.894238  49.21760 2.290859e-12
ENSMUSG00000030890.Ilk            1.9847062  6.069542  48.11919 4.010818e-12
ENSMUSG00000026640.Plxna2         2.2133927  7.249022  48.03200 4.193186e-12
ENSMUSG00000015243.Abca1          1.7488796  6.623831  47.11696 6.687436e-12
ENSMUSG00000021466.Ptch1         -2.3150984  5.681875  47.09628 6.758374e-12
ENSMUSG00000029722.Agfg2          1.8916096  6.528641  46.37411 9.769810e-12
ENSMUSG00000070056.Mfhas1         1.6967191  6.092999  44.29111 2.829987e-11
ENSMUSG00000025314.Ptprj          1.9852329  8.583821  43.69340 3.840657e-11
ENSMUSG00000020642.Rnf144a        1.6013004  6.376802  43.43945 4.372822e-11
ENSMUSG00000021025.Nfkbia         2.2403730  7.746397  42.08369 8.744964e-11
ENSMUSG00000020941.Map3k14        2.0771625  6.483543  41.81518 1.003217e-10
ENSMUSG00000031565.Fgfr1          1.4188947  6.878895  41.66957 1.080783e-10
ENSMUSG00000058740.Kcnt1          2.0069396  5.526285  41.38658 1.249119e-10
ENSMUSG00000021710.Nln            1.9455532  6.103864  40.90394 1.598983e-10
ENSMUSG00000025006.Sorbs1         1.6381381  7.810800  40.57673 1.890449e-10
ENSMUSG00000038301.Snx10          1.7658588  6.992985  40.11084 2.399542e-10
ENSMUSG00000040624.Plekhg1        1.7772805  7.701047  39.83793 2.759338e-10
ENSMUSG00000038894.Irs2           2.9064074  5.023270  39.46970 3.331900e-10
ENSMUSG00000020354.Sgcd           1.9888926  9.351652  39.35552 3.532531e-10
ENSMUSG00000087259.2610035D17Rik -2.0564503  6.625932  39.21747 3.791322e-10
ENSMUSG00000021684.Pde8b         -2.0532880  7.529053  38.90161 4.457132e-10
ENSMUSG00000030199.Etv6           1.9505600  7.544835  38.88917 4.485626e-10
ENSMUSG00000037815.Ctnna1         1.4667957  6.628046  37.20711 1.062257e-09
ENSMUSG00000046718.Bst2           4.6022360  6.743287  37.14268 1.097940e-09
ENSMUSG00000044968.Napepld        2.8377831  6.074994  37.12542 1.107702e-09
ENSMUSG00000040037.Negr1         -1.4885108  9.002609  37.11617 1.112971e-09
ENSMUSG00000065968.Ifitm7         2.9295857  5.357055  36.44833 1.567676e-09
ENSMUSG00000035376.Hacd2          1.3412775  7.239264  35.53733 2.502086e-09
ENSMUSG00000097300.Gm26835        1.9916031  7.180103  35.36980 2.726818e-09
ENSMUSG00000032741.Tpcn1         -1.7728903  5.674891  35.34270 2.765030e-09
ENSMUSG00000020623.Map2k6        -1.8919090  7.036746  35.07604 3.170776e-09
ENSMUSG00000005501.Usp40          1.3598653  6.863377  34.84974 3.561569e-09
ENSMUSG00000048807.Slc35e4        1.8780656  5.670424  34.81804 3.620034e-09
ENSMUSG00000063297.Luzp2         -1.4432306  8.599532  34.75662 3.736066e-09
ENSMUSG00000021895.Arhgef3        2.2970436  6.893204  34.74663 3.755284e-09
ENSMUSG00000060548.Tnfrsf19      -1.4121689  6.045020  34.72610 3.795089e-09
ENSMUSG00000068747.Sort1          1.4066968  7.615520  34.29064 4.746601e-09
ENSMUSG00000043259.Fam13c        -2.1089641  6.626677  33.96932 5.598785e-09
ENSMUSG00000039954.Stk32a         2.7742223  6.347293  33.94482 5.669741e-09
ENSMUSG00000030660.Pik3c2a        1.4015119  7.541009  33.93635 5.694471e-09
ENSMUSG00000030077.Chl1           1.6036444  7.025015  33.29824 7.905403e-09
ENSMUSG00000037363.Letm2          1.3855293  6.751451  33.00728 9.181435e-09
ENSMUSG00000021814.Anxa7          1.7616966  6.397993  33.00266 9.203279e-09
ENSMUSG00000085245.Gm11713       -2.1489831  5.883856  32.49681 1.193882e-08
ENSMUSG00000041712.Ubr7           1.6346363  5.735418  32.11747 1.451263e-08
ENSMUSG00000038371.Sbf2           1.4381764  7.990114  32.05065 1.502049e-08
ENSMUSG00000005686.Ampd3          1.8785761  6.196174  31.91514 1.610572e-08
ENSMUSG00000062151.Unc13c        -2.7457587  6.619146  31.87602 1.643337e-08
ENSMUSG00000064210.Ano6           1.6677794  7.196286  31.87137 1.647275e-08
ENSMUSG00000047731.Wbp1l          1.7881372  6.071261  31.67987 1.817972e-08
ENSMUSG00000022912.Pros1          2.2423416  5.334382  31.58057 1.913343e-08
ENSMUSG00000003541.Ier3           2.6016673  7.104105  31.45424 2.041959e-08
ENSMUSG00000052942.Glis3          1.5263188  6.815607  31.32184 2.186061e-08
ENSMUSG00000027562.Car2          -1.7740294  7.693394  31.01541 2.559884e-08
ENSMUSG00000070327.Rnf213         1.8623254  6.440391  30.98314 2.602795e-08
ENSMUSG00000031681.Smad1          1.6409273  6.269734  30.72384 2.974877e-08
ENSMUSG00000021709.Erbb2ip        1.4660545  7.610280  30.62157 3.135882e-08
ENSMUSG00000059866.Tnip2          2.4213124  5.907161  29.90048 4.548005e-08
ENSMUSG00000063972.Nr6a1         -1.4696961  7.318119  29.54628 5.459734e-08
ENSMUSG00000020287.Mpg            1.9503523  5.218020  29.53194 5.500286e-08
ENSMUSG00000015850.Adamtsl4       2.9774890  5.992686  29.51646 5.544386e-08
ENSMUSG00000059991.Nptx2          2.2874530  5.614456  29.39452 5.904451e-08
ENSMUSG00000030088.Aldh1l1        1.2623746  5.682379  29.19670 6.539056e-08
ENSMUSG00000041642.Kif21b        -2.4566841  5.336615  29.00536 7.217845e-08
ENSMUSG00000030257.Srgap3        -1.3354699  7.669560  28.88251 7.690430e-08
ENSMUSG00000024539.Ptpn2          1.9251490  5.995932  28.79700 8.037570e-08
ENSMUSG00000032656.March3         1.7203887  5.715515  28.60180 8.889940e-08
ENSMUSG00000015501.Hivep2         1.1354385  8.543502  28.08976 1.158173e-07
ENSMUSG00000025545.Clybl         -1.2829486  6.435785  28.07496 1.167064e-07
ENSMUSG00000078722.Gm12394        1.7558278  6.390679  27.93572 1.254130e-07
ENSMUSG00000022680.Pdxdc1         1.3419402  7.162566  27.92629 1.260261e-07
ENSMUSG00000038587.Akap12         2.8461743  8.676037  27.81209 1.336881e-07
ENSMUSG00000014592.Camta1         1.1927383  8.616873  27.80892 1.339076e-07
ENSMUSG00000056073.Grik2         -1.4078868  8.733773  27.43307 1.626265e-07
ENSMUSG00000053641.Dennd4a        1.5714847  7.217962  27.42701 1.631363e-07
ENSMUSG00000074505.Fat3          -2.0422414  7.889291  27.33972 1.706691e-07
ENSMUSG00000035133.Arhgap5       -1.0473694  7.357835  27.17423 1.859202e-07
ENSMUSG00000020859.Spag9         -1.0698492  8.122217  27.12089 1.911219e-07
ENSMUSG00000032000.Birc3          3.2864432  5.917810  26.75505 2.309470e-07
ENSMUSG00000024654.Asrgl1        -1.3077134  5.788582  26.73974 2.327842e-07
ENSMUSG00000021133.Susd6          1.3450741  7.547107  26.60217 2.499627e-07
ENSMUSG00000054400.Cklf           1.7807166  5.646605  26.27067 2.967620e-07
ENSMUSG00000061410.Zcchc14        1.5945984  6.119048  25.91868 3.561072e-07
ENSMUSG00000035356.Nfkbiz         2.3816775  5.183770  25.89256 3.609579e-07
ENSMUSG00000020077.Srgn           3.1199949  6.846748  25.85011 3.689833e-07
ENSMUSG00000031762.Mt2            2.5011062 10.724081  24.76253 6.484588e-07
ENSMUSG00000020776.Fbf1           2.2098746  4.722832  24.71348 6.651726e-07
ENSMUSG00000053702.Nebl           1.2693929  8.803484  24.63191 6.939301e-07
ENSMUSG00000006301.Tmbim1         1.7498618  7.680700  24.60635 7.031952e-07
ENSMUSG00000004508.Gab2           1.5701591  7.604450  24.59291 7.081166e-07
ENSMUSG00000014599.Csf1           2.2735783  5.388679  24.35819 7.998577e-07
ENSMUSG00000020262.Adarb1         1.7691825  6.585359  23.97218 9.773759e-07
ENSMUSG00000050965.Prkca          1.3343052  8.858084  23.87788 1.026445e-06
ENSMUSG00000039047.Pigk          -1.3171306  7.190760  23.85693 1.037676e-06
ENSMUSG00000030201.Lrp6           1.5047796  6.331592  23.81033 1.063105e-06
ENSMUSG00000008734.Gprc5b        -1.2911036  7.049447  23.78842 1.075276e-06
ENSMUSG00000024603.Dctn4          1.0570875  7.304204  23.60034 1.185669e-06
ENSMUSG00000019889.Ptprk          1.7795046  8.503677  23.56163 1.209761e-06
ENSMUSG00000054885.4930578G10Rik  2.2418811  5.786615  23.55033 1.216883e-06
ENSMUSG00000024642.Tle4          -1.3714403  5.961362  23.46201 1.274045e-06
ENSMUSG00000029687.Ezh2           1.9692236  5.318652  23.33021 1.364401e-06
ENSMUSG00000020644.Id2            1.2580297  7.980765  23.32550 1.367743e-06
ENSMUSG00000038342.Mlxip          1.3913566  6.095656  23.26308 1.412862e-06
ENSMUSG00000034135.Sik3           0.9293732  9.024112  23.13704 1.508567e-06
ENSMUSG00000036356.Csgalnact1    -1.5269509  6.880043  23.05292 1.576032e-06
ENSMUSG00000063550.Nup98          1.2258099  6.557970  23.03179 1.593448e-06
ENSMUSG00000030352.Tspan9        -1.3880784  6.682200  22.74472 1.850115e-06
ENSMUSG00000031781.Ciapin1        1.5606234  6.095096  22.54241 2.055546e-06
ENSMUSG00000014353.Tmem87b        1.5542665  6.600712  22.48352 2.119538e-06
ENSMUSG00000039501.Znfx1          1.9721367  6.314003  22.42572 2.184295e-06
ENSMUSG00000018476.Kdm6b          1.7238883  6.047336  22.40431 2.208774e-06
ENSMUSG00000001768.Rin2           1.3382745  6.223052  22.28778 2.346956e-06
ENSMUSG00000032041.Tirap          2.8772656  4.847628  22.24080 2.405089e-06
ENSMUSG00000106261.Gm34086       -1.9958570  4.893558  22.14499 2.528149e-06
ENSMUSG00000020541.Tom1l1        -1.3641079  5.299135  22.05387 2.651045e-06
ENSMUSG00000055373.Fut9          -1.1419695  7.906818  22.01735 2.701963e-06
ENSMUSG00000022075.Rhobtb2       -1.7726388  6.093297  21.91457 2.850607e-06
ENSMUSG00000038774.Ascc3          1.2671002  6.974692  21.90736 2.861337e-06
ENSMUSG00000002332.Dhrs1          1.5040866  5.253558  21.89697 2.876880e-06
ENSMUSG00000031765.Mt1            2.2221471 10.886198  21.84394 2.957492e-06
ENSMUSG00000052534.Pbx1          -1.1421080  9.167517  21.79780 3.029475e-06
ENSMUSG00000039126.Prune2         1.3222138  6.130857  21.79290 3.037212e-06
ENSMUSG00000030739.Myh14         -1.3544011  5.840928  21.36121 3.803893e-06
ENSMUSG00000028521.Slc35d1       -1.7461425  5.345396  21.35806 3.810151e-06
ENSMUSG00000047146.Tet1          -2.0033704  5.539967  21.34359 3.839030e-06
ENSMUSG00000038156.Spon1          1.7221671  6.815071  21.28340 3.961465e-06
ENSMUSG00000063810.Alms1         -1.5559476  5.653685  21.06684 4.435367e-06
ENSMUSG00000071202.Ccdc78        -1.9813349  4.796803  20.94081 4.736955e-06
ENSMUSG00000036278.Macrod1       -1.3271950  7.852351  20.81411 5.060862e-06
                                         FWER
ENSMUSG00000035673.Sbno2         3.153611e-56
ENSMUSG00000024998.Plce1         5.575959e-30
ENSMUSG00000022094.Slc39a14      7.573919e-30
ENSMUSG00000052560.Cpne8         3.431411e-29
ENSMUSG00000021091.Serpina3n     5.978948e-27
ENSMUSG00000021453.Gadd45g       2.845231e-25
ENSMUSG00000022146.Osmr          6.494579e-25
ENSMUSG00000018899.Irf1          1.155155e-23
ENSMUSG00000004040.Stat3         3.759971e-23
ENSMUSG00000034855.Cxcl10        5.819738e-21
ENSMUSG00000040033.Stat2         2.499533e-18
ENSMUSG00000054072.Iigp1         8.043097e-18
ENSMUSG00000105504.Gbp5          8.431032e-18
ENSMUSG00000054226.Tprkb         9.887603e-18
ENSMUSG00000053113.Socs3         1.327848e-17
ENSMUSG00000040430.Pitpnc1       6.924280e-17
ENSMUSG00000036644.Tbc1d9b       1.475256e-16
ENSMUSG00000026131.Dst           2.737791e-15
ENSMUSG00000036661.Dennd3        1.804301e-14
ENSMUSG00000026104.Stat1         2.514328e-14
ENSMUSG00000024501.Dpysl3        3.448990e-14
ENSMUSG00000070366.Plpp4         9.792418e-14
ENSMUSG00000020932.Gfap          3.113622e-13
ENSMUSG00000069874.Irgm2         8.405391e-13
ENSMUSG00000037876.Jmjd1c        2.361885e-12
ENSMUSG00000029561.Oasl2         4.357699e-12
ENSMUSG00000034640.Tiparp        4.762226e-12
ENSMUSG00000033720.Sfxn5         1.446194e-11
ENSMUSG00000051439.Cd14          1.701463e-11
ENSMUSG00000029380.Cxcl1         3.210599e-11
ENSMUSG00000035385.Ccl2          3.705709e-11
ENSMUSG00000026822.Lcn2          4.708985e-11
ENSMUSG00000030759.Far1          5.033449e-11
ENSMUSG00000055320.Tead1         7.990987e-11
ENSMUSG00000024339.Tap2          9.098184e-11
ENSMUSG00000039037.St6galnac5    1.062538e-10
ENSMUSG00000052837.Junb          1.708131e-10
ENSMUSG00000084984.Far1os        2.113895e-10
ENSMUSG00000026565.Pou2f1        3.170728e-10
ENSMUSG00000037458.Azin1         3.479363e-10
ENSMUSG00000037405.Icam1         8.038237e-10
ENSMUSG00000039701.Usp53         9.302015e-10
ENSMUSG00000020658.Efr3b         9.540566e-10
ENSMUSG00000019841.Rev3l         2.479040e-09
ENSMUSG00000021360.Gcnt2         3.048743e-09
ENSMUSG00000029798.Herc6         5.209107e-09
ENSMUSG00000022681.Ntan1         5.390469e-09
ENSMUSG00000013150.Gfod2         5.921915e-09
ENSMUSG00000029313.Aff1          1.145518e-08
ENSMUSG00000073411.H2-D1         1.494553e-08
ENSMUSG00000025492.Ifitm3        1.686658e-08
ENSMUSG00000046768.Rhoj          1.832795e-08
ENSMUSG00000027737.Slc7a11       2.035887e-08
ENSMUSG00000030890.Ilk           3.564414e-08
ENSMUSG00000026640.Plxna2        3.726484e-08
ENSMUSG00000015243.Abca1         5.943124e-08
ENSMUSG00000021466.Ptch1         6.006167e-08
ENSMUSG00000029722.Agfg2         8.682430e-08
ENSMUSG00000070056.Mfhas1        2.515010e-07
ENSMUSG00000025314.Ptprj         3.413192e-07
ENSMUSG00000020642.Rnf144a       3.886126e-07
ENSMUSG00000021025.Nfkbia        7.771650e-07
ENSMUSG00000020941.Map3k14       8.915592e-07
ENSMUSG00000031565.Fgfr1         9.604921e-07
ENSMUSG00000058740.Kcnt1         1.110092e-06
ENSMUSG00000021710.Nln           1.421016e-06
ENSMUSG00000025006.Sorbs1        1.680042e-06
ENSMUSG00000038301.Snx10         2.132473e-06
ENSMUSG00000040624.Plekhg1       2.452224e-06
ENSMUSG00000038894.Irs2          2.961059e-06
ENSMUSG00000020354.Sgcd          3.139360e-06
ENSMUSG00000087259.2610035D17Rik 3.369348e-06
ENSMUSG00000021684.Pde8b         3.961054e-06
ENSMUSG00000030199.Etv6          3.986376e-06
ENSMUSG00000037815.Ctnna1        9.440280e-06
ENSMUSG00000046718.Bst2          9.757392e-06
ENSMUSG00000044968.Napepld       9.844151e-06
ENSMUSG00000040037.Negr1         9.890978e-06
ENSMUSG00000065968.Ifitm7        1.393194e-05
ENSMUSG00000035376.Hacd2         2.223604e-05
ENSMUSG00000097300.Gm26835       2.423323e-05
ENSMUSG00000032741.Tpcn1         2.457282e-05
ENSMUSG00000020623.Map2k6        2.817869e-05
ENSMUSG00000005501.Usp40         3.165167e-05
ENSMUSG00000048807.Slc35e4       3.217125e-05
ENSMUSG00000063297.Luzp2         3.320242e-05
ENSMUSG00000021895.Arhgef3       3.337321e-05
ENSMUSG00000060548.Tnfrsf19      3.372696e-05
ENSMUSG00000068747.Sort1         4.218304e-05
ENSMUSG00000043259.Fam13c        4.975640e-05
ENSMUSG00000039954.Stk32a        5.038699e-05
ENSMUSG00000030660.Pik3c2a       5.060676e-05
ENSMUSG00000030077.Chl1          7.025532e-05
ENSMUSG00000037363.Letm2         8.159541e-05
ENSMUSG00000021814.Anxa7         8.178954e-05
ENSMUSG00000085245.Gm11713       1.061003e-04
ENSMUSG00000041712.Ubr7          1.289737e-04
ENSMUSG00000038371.Sbf2          1.334871e-04
ENSMUSG00000005686.Ampd3         1.431315e-04
ENSMUSG00000062151.Unc13c        1.460433e-04
ENSMUSG00000064210.Ano6          1.463933e-04
ENSMUSG00000047731.Wbp1l         1.615632e-04
ENSMUSG00000022912.Pros1         1.700387e-04
ENSMUSG00000003541.Ier3          1.814689e-04
ENSMUSG00000052942.Glis3         1.942752e-04
ENSMUSG00000027562.Car2          2.274969e-04
ENSMUSG00000070327.Rnf213        2.313104e-04
ENSMUSG00000031681.Smad1         2.643773e-04
ENSMUSG00000021709.Erbb2ip       2.786859e-04
ENSMUSG00000059866.Tnip2         4.041812e-04
ENSMUSG00000063972.Nr6a1         4.852066e-04
ENSMUSG00000020287.Mpg           4.888104e-04
ENSMUSG00000015850.Adamtsl4      4.927296e-04
ENSMUSG00000059991.Nptx2         5.247285e-04
ENSMUSG00000030088.Aldh1l1       5.811259e-04
ENSMUSG00000041642.Kif21b        6.414499e-04
ENSMUSG00000030257.Srgap3        6.834485e-04
ENSMUSG00000024539.Ptpn2         7.142988e-04
ENSMUSG00000032656.March3        7.900490e-04
ENSMUSG00000015501.Hivep2        1.029268e-03
ENSMUSG00000025545.Clybl         1.037170e-03
ENSMUSG00000078722.Gm12394       1.114545e-03
ENSMUSG00000022680.Pdxdc1        1.119994e-03
ENSMUSG00000038587.Akap12        1.188086e-03
ENSMUSG00000014592.Camta1        1.190037e-03
ENSMUSG00000056073.Grik2         1.445261e-03
ENSMUSG00000053641.Dennd4a       1.449793e-03
ENSMUSG00000074505.Fat3          1.516736e-03
ENSMUSG00000035133.Arhgap5       1.652273e-03
ENSMUSG00000020859.Spag9         1.698500e-03
ENSMUSG00000032000.Birc3         2.052426e-03
ENSMUSG00000024654.Asrgl1        2.068753e-03
ENSMUSG00000021133.Susd6         2.221419e-03
ENSMUSG00000054400.Cklf          2.637324e-03
ENSMUSG00000061410.Zcchc14       3.164725e-03
ENSMUSG00000035356.Nfkbiz        3.207832e-03
ENSMUSG00000020077.Srgn          3.279155e-03
ENSMUSG00000031762.Mt2           5.762853e-03
ENSMUSG00000020776.Fbf1          5.911389e-03
ENSMUSG00000053702.Nebl          6.166957e-03
ENSMUSG00000006301.Tmbim1        6.249296e-03
ENSMUSG00000004508.Gab2          6.293032e-03
ENSMUSG00000014599.Csf1          7.108336e-03
ENSMUSG00000020262.Adarb1        8.685940e-03
ENSMUSG00000050965.Prkca         9.122016e-03
ENSMUSG00000039047.Pigk          9.221828e-03
ENSMUSG00000030201.Lrp6          9.447817e-03
ENSMUSG00000008734.Gprc5b        9.555974e-03
ENSMUSG00000024603.Dctn4         1.053704e-02
ENSMUSG00000019889.Ptprk         1.075114e-02
ENSMUSG00000054885.4930578G10Rik 1.081444e-02
ENSMUSG00000024642.Tle4          1.132244e-02
ENSMUSG00000029687.Ezh2          1.212543e-02
ENSMUSG00000020644.Id2           1.215513e-02
ENSMUSG00000038342.Mlxip         1.255610e-02
ENSMUSG00000034135.Sik3          1.340664e-02
ENSMUSG00000036356.Csgalnact1    1.400620e-02
ENSMUSG00000063550.Nup98         1.416097e-02
ENSMUSG00000030352.Tspan9        1.644197e-02
ENSMUSG00000031781.Ciapin1       1.826764e-02
ENSMUSG00000014353.Tmem87b       1.883633e-02
ENSMUSG00000039501.Znfx1         1.941183e-02
ENSMUSG00000018476.Kdm6b         1.962938e-02
ENSMUSG00000001768.Rin2          2.085740e-02
ENSMUSG00000032041.Tirap         2.137403e-02
ENSMUSG00000106261.Gm34086       2.246766e-02
ENSMUSG00000020541.Tom1l1        2.355984e-02
ENSMUSG00000055373.Fut9          2.401234e-02
ENSMUSG00000022075.Rhobtb2       2.533334e-02
ENSMUSG00000038774.Ascc3         2.542870e-02
ENSMUSG00000002332.Dhrs1         2.556683e-02
ENSMUSG00000031765.Mt1           2.628324e-02
ENSMUSG00000052534.Pbx1          2.692294e-02
ENSMUSG00000039126.Prune2        2.699171e-02
ENSMUSG00000030739.Myh14         3.380520e-02
ENSMUSG00000028521.Slc35d1       3.386081e-02
ENSMUSG00000047146.Tet1          3.411746e-02
ENSMUSG00000038156.Spon1         3.520554e-02
ENSMUSG00000063810.Alms1         3.941711e-02
ENSMUSG00000071202.Ccdc78        4.209732e-02
ENSMUSG00000036278.Macrod1       4.497588e-02

For the global treatment, 182 genes were found significant, and thereby diferentially expressed.

y <- estimateDisp(y,design_interaction)
#To perform likelihood ratio tests:
fit <- glmFit(y,design_interaction)
lrt_excneuron <- glmLRT(fit,coef=10)
topTags(lrt_excneuron, n= Inf, p.value=0.05, adjust.method = "bonferroni")
Coefficient:  cell_typesexcNeuron:groupLPS 
                                  logFC   logCPM        LR       PValue
ENSMUSG00000035673.Sbno2      -4.644181 6.843842 114.48407 1.020829e-26
ENSMUSG00000052560.Cpne8      -4.766726 7.032948 112.28937 3.087863e-26
ENSMUSG00000021453.Gadd45g    -3.658702 6.415887  90.02486 2.351866e-21
ENSMUSG00000024501.Dpysl3     -4.572113 5.705460  64.38142 1.025206e-15
ENSMUSG00000052837.Junb       -3.387817 6.600337  63.10365 1.961105e-15
ENSMUSG00000020642.Rnf144a    -2.386393 6.376802  62.99013 2.077451e-15
ENSMUSG00000022094.Slc39a14   -3.415017 6.776529  62.69788 2.409753e-15
ENSMUSG00000054226.Tprkb       2.350912 6.062998  55.80375 8.007880e-14
ENSMUSG00000036644.Tbc1d9b    -2.117009 6.703553  52.96294 3.399022e-13
ENSMUSG00000036661.Dennd3     -4.155245 5.756880  52.52731 4.243062e-13
ENSMUSG00000029798.Herc6      -2.998580 5.748384  51.72958 6.369585e-13
ENSMUSG00000024998.Plce1      -3.029461 6.953755  51.32869 7.812568e-13
ENSMUSG00000013150.Gfod2      -2.175110 6.170962  47.34460 5.954201e-12
ENSMUSG00000030077.Chl1       -2.259761 7.025015  45.21898 1.761893e-11
ENSMUSG00000037458.Azin1      -1.894169 6.868663  43.72237 3.784223e-11
ENSMUSG00000026131.Dst        -1.720976 8.725271  42.06546 8.826875e-11
ENSMUSG00000030759.Far1       -2.037756 6.510621  41.66061 1.085745e-10
ENSMUSG00000033720.Sfxn5       1.832322 7.439145  41.34676 1.274823e-10
ENSMUSG00000019841.Rev3l      -1.935051 7.221205  40.57736 1.889835e-10
ENSMUSG00000032741.Tpcn1       2.224587 5.674891  39.62277 3.080699e-10
ENSMUSG00000040430.Pitpnc1     2.085972 8.570368  39.41271 3.430574e-10
ENSMUSG00000059991.Nptx2      -3.184372 5.614456  37.79688 7.850706e-10
ENSMUSG00000040033.Stat2      -2.384176 6.508861  37.42467 9.501247e-10
ENSMUSG00000026640.Plxna2     -2.235415 7.249022  33.99157 5.535127e-09
ENSMUSG00000021710.Nln        -2.221708 6.103864  33.96196 5.620019e-09
ENSMUSG00000021091.Serpina3n  -3.100403 5.966274  33.68400 6.483171e-09
ENSMUSG00000070056.Mfhas1     -1.871170 6.092999  32.75573 1.044979e-08
ENSMUSG00000021360.Gcnt2      -3.106720 6.483870  32.63823 1.110095e-08
ENSMUSG00000037876.Jmjd1c     -1.441650 8.605151  32.15655 1.422360e-08
ENSMUSG00000084984.Far1os     -2.114793 5.650893  32.01919 1.526567e-08
ENSMUSG00000020623.Map2k6      2.337267 7.036746  30.76978 2.905276e-08
ENSMUSG00000030199.Etv6       -2.256642 7.544835  30.55343 3.247971e-08
ENSMUSG00000034640.Tiparp     -2.374001 7.481458  30.45156 3.423082e-08
ENSMUSG00000020658.Efr3b      -1.753566 7.946889  29.73163 4.961859e-08
ENSMUSG00000040037.Negr1       1.747657 9.002609  29.05726 7.027034e-08
ENSMUSG00000047146.Tet1        2.675047 5.539967  29.00130 7.232970e-08
ENSMUSG00000044968.Napepld    -2.973072 6.074994  28.81294 7.971690e-08
ENSMUSG00000026565.Pou2f1      1.666564 6.486639  28.14227 1.127172e-07
ENSMUSG00000020941.Map3k14    -2.258441 6.483543  27.31991 1.724268e-07
ENSMUSG00000030172.Erc1       -1.208503 7.028553  26.07575 3.282810e-07
ENSMUSG00000038894.Irs2       -2.852711 5.023270  26.01427 3.389028e-07
ENSMUSG00000021895.Arhgef3    -2.377557 6.893204  25.61091 4.176711e-07
ENSMUSG00000022146.Osmr       -5.365793 5.942096  24.81477 6.311187e-07
ENSMUSG00000022912.Pros1      -2.467179 5.334382  24.47298 7.535923e-07
ENSMUSG00000017561.Crlf3       1.691954 5.963286  24.33820 8.082035e-07
ENSMUSG00000048807.Slc35e4    -2.136001 5.670424  23.91694 1.005830e-06
ENSMUSG00000024539.Ptpn2      -1.994284 5.995932  23.91489 1.006901e-06
ENSMUSG00000027827.Kcnab1     -1.775966 8.261847  23.34777 1.351999e-06
ENSMUSG00000022681.Ntan1      -1.421020 8.057143  23.29010 1.393151e-06
ENSMUSG00000020644.Id2        -1.735116 7.980765  23.23885 1.430772e-06
ENSMUSG00000039037.St6galnac5  1.750347 7.893553  22.80740 1.790753e-06
ENSMUSG00000020262.Adarb1     -1.930629 6.585359  22.71203 1.881859e-06
ENSMUSG00000025545.Clybl       1.555246 6.435785  22.68215 1.911349e-06
ENSMUSG00000047731.Wbp1l      -1.895369 6.071261  22.38957 2.225791e-06
ENSMUSG00000038301.Snx10      -1.628804 6.992985  22.17470 2.489331e-06
ENSMUSG00000029722.Agfg2      -1.667418 6.528641  22.13102 2.546616e-06
ENSMUSG00000043259.Fam13c      2.084434 6.626677  21.87352 2.912245e-06
ENSMUSG00000026104.Stat1      -2.324038 5.961661  21.35592 3.814412e-06
ENSMUSG00000025314.Ptprj      -1.807010 8.583821  20.81824 5.049964e-06
                                      FWER
ENSMUSG00000035673.Sbno2      9.072111e-23
ENSMUSG00000052560.Cpne8      2.744184e-22
ENSMUSG00000021453.Gadd45g    2.090104e-17
ENSMUSG00000024501.Dpysl3     9.111001e-12
ENSMUSG00000052837.Junb       1.742834e-11
ENSMUSG00000020642.Rnf144a    1.846230e-11
ENSMUSG00000022094.Slc39a14   2.141548e-11
ENSMUSG00000054226.Tprkb      7.116603e-10
ENSMUSG00000036644.Tbc1d9b    3.020711e-09
ENSMUSG00000036661.Dennd3     3.770809e-09
ENSMUSG00000029798.Herc6      5.660650e-09
ENSMUSG00000024998.Plce1      6.943029e-09
ENSMUSG00000013150.Gfod2      5.291499e-08
ENSMUSG00000030077.Chl1       1.565794e-07
ENSMUSG00000037458.Azin1      3.363039e-07
ENSMUSG00000026131.Dst        7.844444e-07
ENSMUSG00000030759.Far1       9.649018e-07
ENSMUSG00000033720.Sfxn5      1.132935e-06
ENSMUSG00000019841.Rev3l      1.679497e-06
ENSMUSG00000032741.Tpcn1      2.737817e-06
ENSMUSG00000040430.Pitpnc1    3.048751e-06
ENSMUSG00000059991.Nptx2      6.976923e-06
ENSMUSG00000040033.Stat2      8.443758e-06
ENSMUSG00000026640.Plxna2     4.919067e-05
ENSMUSG00000021710.Nln        4.994511e-05
ENSMUSG00000021091.Serpina3n  5.761594e-05
ENSMUSG00000070056.Mfhas1     9.286724e-05
ENSMUSG00000021360.Gcnt2      9.865415e-05
ENSMUSG00000037876.Jmjd1c     1.264051e-04
ENSMUSG00000084984.Far1os     1.356660e-04
ENSMUSG00000020623.Map2k6     2.581919e-04
ENSMUSG00000030199.Etv6       2.886472e-04
ENSMUSG00000034640.Tiparp     3.042093e-04
ENSMUSG00000020658.Efr3b      4.409604e-04
ENSMUSG00000040037.Negr1      6.244925e-04
ENSMUSG00000047146.Tet1       6.427940e-04
ENSMUSG00000044968.Napepld    7.084441e-04
ENSMUSG00000026565.Pou2f1     1.001717e-03
ENSMUSG00000020941.Map3k14    1.532357e-03
ENSMUSG00000030172.Erc1       2.917433e-03
ENSMUSG00000038894.Irs2       3.011829e-03
ENSMUSG00000021895.Arhgef3    3.711843e-03
ENSMUSG00000022146.Osmr       5.608752e-03
ENSMUSG00000022912.Pros1      6.697174e-03
ENSMUSG00000017561.Crlf3      7.182505e-03
ENSMUSG00000048807.Slc35e4    8.938814e-03
ENSMUSG00000024539.Ptpn2      8.948330e-03
ENSMUSG00000027827.Kcnab1     1.201522e-02
ENSMUSG00000022681.Ntan1      1.238094e-02
ENSMUSG00000020644.Id2        1.271527e-02
ENSMUSG00000039037.St6galnac5 1.591442e-02
ENSMUSG00000020262.Adarb1     1.672408e-02
ENSMUSG00000025545.Clybl      1.698616e-02
ENSMUSG00000047731.Wbp1l      1.978061e-02
ENSMUSG00000038301.Snx10      2.212269e-02
ENSMUSG00000029722.Agfg2      2.263178e-02
ENSMUSG00000043259.Fam13c     2.588112e-02
ENSMUSG00000026104.Stat1      3.389868e-02
ENSMUSG00000025314.Ptprj      4.487903e-02
DE_excNeuron_table <- topTags(lrt_excneuron, n= Inf, p.value=0.05, adjust.method = "bonferroni")
names_DE_excNeuron_edgeR <- rownames(DE_excNeuron_table)

Based on the edgeR DE analysis, these are the DE genes with p-value < 0.05 after Bonferroni correction was applied.

4. Compare these sets of genes with the ones found in the first part (#1-3). Do you find more, or less genes? To what extent do the sets overlap between the two analyses? How do you interpret the differences? Compare to the genes found in the first part, we find 59 DE compared to the 31 found with the muscat approach. We can have a look at the overlap:

DE_only_excNeuron_muscat <- DE_only_excNeuron
allDEgenes_excNeuron <- data.frame(DE_genes = unique(union(names_DE_excNeuron_edgeR, DE_only_excNeuron_muscat)))

allDEgenes_excNeuron$edgeR <- allDEgenes_excNeuron$DE_genes %in% names_DE_excNeuron_edgeR
allDEgenes_excNeuron$muscat <- allDEgenes_excNeuron$DE_genes %in% DE_only_excNeuron_muscat

vennDiagram(allDEgenes_excNeuron[-1])

No genes overlap. This result is not what we expected, as we would expect most DE genes to be similar. We make a scatter plot to observe the logFC of the gene expression in both methods.

logFC_excNeu_muscat <- as.data.frame(rowMeans(assays(pb2)$log2FC[,21:24]))
table_excNeu_edgeR <- topTags(lrt_excneuron, n= Inf)$table
logFC_excNeu_edgeR <- data.frame(logFC = table_excNeu_edgeR$logFC)

logFC <- data.frame(edgeR = logFC_excNeu_edgeR$logFC, muscat = logFC_excNeu_muscat$`rowMeans(assays(pb2)$log2FC[, 21:24])`)

ggplot(logFC, aes(x = edgeR, y = muscat)) +
  geom_point() +
  labs(title = "Scatter Plot of Log-Fold Changes",
       x = "EdgeR",
       y = "Muscat") +
  theme_minimal() +
  geom_abline(intercept = 0, slope = 1, color = "red", linetype = "dashed")

If logFC were the same, or their expression was at least similarly predicted, we would observe all points closer to the red line. However, this is not the case. This indicates above results are not comparable as edgeR and muscat is not predicting similar infering similar expression values for the genes.


For a refresher on the use of GLMs, see for instance the examples in the edgeR::edgeRUsersGuide() (chapter 3), or the limma::limmaUsersGuide() (chapter 9).